-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow choosing which apps will get restored #670
Allow choosing which apps will get restored #670
Conversation
bcc9922
to
ab4b1f1
Compare
apparently this is closer to the material design specs: https://m2.material.io/components/checkboxes#usage
so they can be shown when selecting apps for restore which is before we have downloaded the APK files to extract icons from
this is helpful for restore, so the user can see app names when deciding which apps to restore
system data comes first and then apps
This way we don't need to show the long complicated list, but provide an all or nothing option at least.
While we still don't guarantee that an attacker with access to the storage can't find out which apps we use (APKs are still unencrypted after all), we go into this direction. Also, this should make it impossible for an attacker that can modify files to replace or otherwise mess with the icons.
Resources$NotFoundException: Resource ID #0x7f060258 type #0x2 is not valid
during restore process. These can usually not be manually installed anyway and just clutter the list making it harder for the user to find their important apps and potential failures there.
ab4b1f1
to
4f28d0e
Compare
AppDataRestoreManager which was in RestoreViewModel before. Now all three steps of app restore have their own dedicated manager class making the ViewModel more readable.
Apps are now restored alphabetically to be consistent with the other lists. Some irrelevant apps are hidden. Under the hood, we now use an AsyncListDiffer like in the other lists.
it doesn't really exist and should probably not even be in the backup metadata. It messes up progress reporting, if we keep it in.
0e8e3b2
to
6fdc6e3
Compare
When restoring, I see a "System apps" toggle under "System data", but I do not see the ability to select or deselect individual system apps. What I'm looking for is e.g. Chromium, but I don't see it. Am I missing something? Edit: I do see some, such as Phone and Music, mixed in with other user apps (that's the part I wasn't expecting, but it's fine). It turns out that Calculator, Chromium, Clock, and some others are "Waiting to back up..." for some reason. I do have D2D on, currently. |
UX: As I scroll around the list of apps to restore, when I scroll down, including when I reach the bottom, there is no clear way to proceed with restoration, as the "Restore backup" button hides itself when you scroll down. I need to scroll up a bit to make the floating "Restore backup" button reappear, which is a bit unintuitive. |
We do show launchable system apps like regular apps now. Other non-userfacing system apps are behind that "System apps" toggle as an all or nothing.
Maybe @theimpulson knows a coordinator layout behavior that works better here. Because of the long app list and the need to go through all of it, I didn't want to steal precious screen space for that button and hence let it float above the list. |
Yes that is expected. Only the new code does store names and icons. As we don't control old installs and old backups, there's no way we can retroactively store those things. So restoring old backups will need to live without icons and app names. Both do exist in the APKs, if available, but downloading all APKs before the user can select something is a bit much, so we didn't do it. |
Okay, everything checks out to me except for one thing which isn't really a Seedvault problem / not related to this change. I left a bullet next to it.
|
Thanks a lot for testing @t-m-w!
Right, that's unrelated and one of the items of #671 |
b65595e
to
fec7fbf
Compare
3a5eea2
to
2f23882
Compare
2f23882
to
c483332
Compare
This adds quite a bit of plumping around the restore process. E.g. we now separately store all the icons of apps we back up, as well as their names and system app status. Apps during restore are now also (mostly) sorted by name.
This then leads to a bit of changes in how we display backup status, e.g. check-boxes instead of switches, show system data instead of system apps and include launch-able system apps in list.
Testing
Closes #309, #624